package com.sxj.corejava.code04_循环结构;

import java.util.Scanner;

/**
 * @author 石小俊
 * @date 2024年03月07日 20:13
 * 用户输入一个数字,在控制台通过星号*打印等腰三角形
 * 输入的数字表示图形的行数
 */
public class Test14_打印等腰三角形 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入等腰三角形行数:");
        int rows = sc.nextInt();
        // 外层循环控制行数
        for (int i = 1; i <= rows; i++) {
            // 内层循环控制打印的内容
            // 此时存在两种内容:空格与星号

//               *
//              ***
//             *****
//            *******
//            行数	空格数	星号数
//            1		3=4-1		1=2*1-1
//            2		2=4-2		3=2*2-1
//            3		1=4-3		5=2*3-1
//            4		0=4-4		7=2*4-1
//            rows	rows-i		2*i-1

            // 先打印空格
            // 第i行空格的数量为:rows-i
            // 定义一个循环,每次进入循环打印一个空格
            // 需要打印几个空格,则循环几次
            for (int j = 1; j <= rows - i; j++) {
                System.out.print("  ");
            }

            // 再打印星号
            // 第i行的星号数量为:2*i-1
            for (int j = 1; j <= 2 * i - 1; j++) {
                System.out.print("* ");
            }
            // 当前行内容打印结束之后进行换行
            System.out.println();
        }
    }
}
